package automat;
/**
 * @author rudz
 */
public class G51TestErMontoer {
	
	public static void main(String[] args) {
		
		
		/*
		 *  Pre-condition test start.
		 */
		Billetautomat preAutomat = new Billetautomat();
		if (preAutomat.erMontør()) return;
		preAutomat.montørLogin("1234");
		if (!preAutomat.erMontør()) return;
		preAutomat.udskrivBillet();
		if (preAutomat.getAntalBilletterSolgt()!=0) return;
		if (preAutomat.getBilletpris() != 10) return;
		preAutomat.nulstil();
		preAutomat.returpenge();
		preAutomat.indsætPenge(30);
		if (preAutomat.getBalance() != 30) return;
		preAutomat.montørLogin("");
		if (preAutomat.erMontør()) return;
		preAutomat = null;
		System.out.println("** Pre-condiction test gennemført, påbegynder almendelig test.");
		System.out.println();
		System.out.println();
		/*
		 * Pre-condition test slut.
		 */


		/*
		 * Test start.
		 */
		// sætter variabler / objekter op.
		boolean retur;
		int antalFejl=0;
		String fejlBeskeder="";
		Billetautomat automat = new Billetautomat();

		// tester om montørstatus er aktiveret uden login.
		retur = automat.erMontør();
		if (retur) {
			antalFejl++;
			fejlBeskeder+="\n"+antalFejl+". erMontør() - Montør tilstand aktiveret selvom montør ikke er logget ind.";
		}
		
		// tester om automaten aktiverer montørstatus med forkert kodeord
		automat.montørLogin("2234");
		retur = automat.erMontør();
		if (retur) {
			antalFejl++;
			fejlBeskeder+="\n"+antalFejl+". erMontør() - Montør tilstand aktiveret med forkert kodeord.";
		}
		
		// tester om login virker
		automat.montørLogin("1234");
		retur = automat.erMontør();
		if (!retur) {
			antalFejl++;
			fejlBeskeder+=antalFejl+". erMontør() - Montør tilstand ikke logget på med korrekt kodeord.";
		}
		else {
			// hvis login virker, test om man bliver logget ud med korrekt kodeord.
			automat.montørLogin("1234");
			retur = automat.erMontør();
			if (!retur) {
				antalFejl++;
				fejlBeskeder+=antalFejl+". erMontør() - Montør tilstand logget af med korrekt kode da montør var logget ind.";
			}			
		}
		/*
		 * Test stop.
		 */
		
		System.out.println("** Test gennemført.");
		System.out.println();
		System.out.println();

		/*
		 * Post condition start.
		 */
		if (antalFejl != 0) {
			System.out.println("Automaten har fejl, ØV!!!");			
			System.out.println("Der blev fundet "+antalFejl+" i erMontør().");
			System.out.println(fejlBeskeder);
		}
		else {
			System.out.println("erMontør() er fejlfri, HURRA!!!");
		}
		/*
		 * Post-condition stop.
		 */
		automat = null;
	}
}
